package com.techfork.hutool.teck;


import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import lombok.Builder;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
@Builder
class Result {
    Object key;
    Object sort;
    Object en;
    Object zh;
    Object validate;
    Object props;

}

public class ExcelTest {
    public static void main(String[] args) throws Exception {

        ExcelReader reader = ExcelUtil.getReader(ResourceUtil.getResource("raw.xlsx").getPath());
        List<List<Object>> lists = reader.read();

        List<List<Object>> result = new ArrayList<>();
        lists.forEach(o -> {
            String key = o.get(0) + "->" + o.get(1);
            try {
                Object value = o.get(3);
                JSON parse = JSONUtil.parse(value);
                JSONArray array = (JSONArray) parse.getByPath("fields[0].children");
                for (Object o1 : array) {
                    List<Object> strList = new ArrayList<>();
                    result.add(strList);
                    JSON obj = JSONUtil.parse(o1);

                    strList.add(key);
                    strList.add(o.get(2));
                    strList.add(obj.getByPath("title"));
                    strList.add(obj.getByPath("field"));
                    strList.add(obj.getByPath("validate"));
                    strList.add(obj.getByPath("props"));
                }
            }catch (Exception e) {
                System.err.println(o);
            }
        });

        ExcelWriter writer = ExcelUtil.getWriter("/tmp/x_temp.out.xlsx");
        writer.write(result);
        writer.close();
//
//        // 1.获取文件流
//        FileInputStream fileInputStream = new FileInputStream("C:\\Users\\Dell\\Desktop\\履历文件及要素表单定义 - 副本.xlsx");
//
//        // 2.创建工作区workbook
//        XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);
//
//        // 3.获取表sheet,这里sheet0代表获取下表为0的excel表,也就是第一个表
//        XSSFSheet sheet = workbook.getSheetAt(0);
//
//        // 4.获取数据
//        // getLastRowNum() 获取一张sheet表中行的数量
//        for(int i = 0 ; i <= sheet.getLastRowNum();i++){
//            // 获取第i行的数据
//            XSSFRow row = sheet.getRow(i);
//            // getLastCellNum() 获取这一行中单元格的数量
//            for(int j = 0; j < row.getLastCellNum(); j++){
//                // 获取第i行第j列的单元格数据
//                String cell = row.getCell(j).toString();
//
//                if(j==1){
//                    System.out.println(cell + " | ");
//                }
//                if(j==3&&i>0){
//
//                    // 获取JSON某个key的值
//                    JSONObject jsonObj = JSON.parseObject(cell);
//                   // String value = jsonObj.getString("fields");
//                    JSONArray contentKey = jsonObj.getJSONArray("fields");
//                    JSONObject jsonObj1 =(JSONObject) contentKey.get(0);
//                   // contentKey.getJSONObject("children").getJSONObject("title");
//                    if(jsonObj1.getJSONArray("children").size()>0){
//                        JSONArray jsonObject2 = jsonObj1.getJSONArray("children");
//                        for(int z =0;z<jsonObject2.size();z++){
//                            JSONObject jsonObject3 = (JSONObject) jsonObject2.get(z);
//                            System.out.print(jsonObject3.get("title")+"      ");
//                            System.out.println(jsonObject3.get("field"));
//                            if(null==(jsonObject3.get("field"))){
//                                System.out.println("无");
//                            }
//
//                        }
//
//                    }
//
//
//
//                }
//
//
//
////                // 5.打印单元格数据
////                System.out.print(cell + " | ");
//            }
//            // println换行
//           // System.out.println("");
//            System.out.println("--------------------------------------------------------------------------");
//        }
//
//        // 6.关闭资源
//        fileInputStream.close();
    }


}
